{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "101_Euler_method_with_Theorems_Growth_function.ipynb",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.11"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hkJ1MEvODZtZ"
},
"source": [
"# First Order Initial Value Problem\n",
" \n",
"\n",
"The more general form of a first order Ordinary Differential Equation is: \n",
"\\begin{equation}\n",
"y^{'}=f(t,y).\n",
"\\end{equation}\n",
"This can be solved analytically by integrating both sides but this is not straight forward for most problems.\n",
"Numerical methods can be used to approximate the solution at discrete points.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DZGV6y7NDZtb"
},
"source": [
"## Euler method\n",
"\n",
"The simplest one step numerical method is the Euler Method named after the most prolific of mathematicians [Leonhard Euler](https://en.wikipedia.org/wiki/Leonhard_Euler) (15 April 1707 – 18 September 1783) .\n",
"\n",
"The general Euler formula for the first order differential equation\n",
"\\begin{equation}\n",
"y^{'} = f(t,y), \n",
"\\end{equation}\n",
"\n",
"approximates the derivative at time point $t_i$,\n",
"\n",
"\\begin{equation}\n",
"y^{'}(t_i) \\approx \\frac{w_{i+1}-w_i}{t_{i+1}-t_{i}},\n",
"\\end{equation}\n",
"\n",
"where $w_i$ is the approximate solution of $y$ at time $t_i$.\n",
"\n",
"This substitution changes the differential equation into a __difference__ equation of the form \n",
"\n",
"\\begin{equation}\n",
"\\frac{w_{i+1}-w_i}{t_{i+1}-t_{i}}=f(t_i,w_i). \n",
"\\end{equation}\n",
"\n",
"Assuming uniform stepsize $t_{i+1}-t_{i}$ is replaced by $h$, re-arranging the equation gives\n",
"\\begin{equation} \n",
"w_{i+1}=w_i+hf(t_i,w_i).\n",
"\\end{equation}\n",
" This can be read as the future $w_{i+1}$ can be approximated by the present $w_i$ and the addition of the input to the system $f(t,y)$ times the time step.\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "mRGCHqPADZtc"
},
"source": [
"## Library\n",
"import numpy as np\n",
"import math \n",
"import pandas as pd\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt # side-stepping mpl backend\n",
"import matplotlib.gridspec as gridspec # subplots\n",
"import warnings\n",
"\n",
"warnings.filterwarnings(\"ignore\")\n"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "Z-L1qD6FDZtd"
},
"source": [
"## Population growth\n",
"\n",
"The general form of the population growth differential equation is: \n",
"\\begin{equation} \n",
"y^{'}=\\epsilon y \n",
"\\end{equation}\n",
"where $\\epsilon$ is the growth rate. The initial population at time $a$ is \n",
"\\begin{equation} \n",
"y(a)=A,\n",
" \\end{equation}\n",
"\\begin{equation}\n",
" a\\leq t \\leq b. \n",
"\\end{equation}\n",
"Integrating gives the general analytic (exact) solution: \n",
"\\begin{equation}\n",
" y=Ae^{\\epsilon x}. \n",
"\\end{equation}\n",
"We will use this equation to illustrate the application of the Euler method.\n",
" \n",
"## Discrete Interval\n",
"The continuous time $a\\leq t \\leq b $ is discretised into $N$ intervals by a constant stepsize\n",
"\\begin{equation} \n",
"h=\\frac{b-a}{N}.\n",
"\\end{equation}\n",
"Here the interval is $0\\leq t \\leq 2$ is discretised into $20$ intervals with stepsize\n",
"\\begin{equation}\n",
" h=\\frac{2-0}{20}=0.1,\n",
"\\end{equation}\n",
"this gives the 21 discrete points:\n",
"\\begin{equation}\n",
" t_0=0, \\ t_1=0.1, \\ ... t_{20}=2. \n",
"\\end{equation}\n",
"This is generalised to \n",
"\\begin{equation}\n",
"t_i=0+i0.1, \\ \\ \\ i=0,1,...,20.\n",
"\\end{equation}\n",
"The plot below shows the discrete time steps."
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "3DIfCuFGDZtd",
"outputId": "85e5b927-fc65-4f6b-bc71-9016e82f605f"
},
"source": [
"### Setting up time\n",
"t_end=2.0\n",
"t_start=0\n",
"N=20\n",
"h=(t_end-t_start)/(N)\n",
"time=np.arange(t_start,t_end+0.01,h)\n",
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(time,0*time,'o:',color='red')\n",
"plt.xlim((0,2))\n",
"plt.title('Illustration of discrete time points for h=%s'%(h))\n",
"plt.plot();"
],
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAEICAYAAAAN2sPKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAdWUlEQVR4nO3df7hdVX3n8fdHfugglB/yQyAhQaWdYmstpBRrR7RWB1BEfdoKw6BiR0otLZ3H1qLW/tBSbZ1RSqVSarEIVOoMtaQWBqiWdgYVDYogBTRQJTFBIvIblaLf+WPvKyc359x7knPDzbr3/Xqe8+Ssvdfea+11dtb9ZO+zc1NVSJIkadv2hPnugCRJkmZnaJMkSWqAoU2SJKkBhjZJkqQGGNokSZIaYGiTJElqgKFNGpDktUn+30C5kjxjPvs0SpJzkrxtHtr95SRfT/JgkqeMUf8rSX62f/+WJB/Y+r3cepKckOTK+e7HTJIc0H8+2z0Obb0iyZq+vR+fg/1dneS/zUXfpIXG0KZFbzBUbKX9/1WSP5hwHxuFSYCqOqWq3jFZ7za7HzsA7wFeXFU7V9Xdm7N9Vf1hVT1uP5CTLO+D9/ZztX1VXVRVL567Xs69qrqj/3y+O1vdSccI+B/AqX17n9/Cfcy5JM9Ocl2Sh/s/nz1D3V9I8sm+7tWPXy+lzWNok+bZBD8s58M+wJOAm+a7I9Dc2C1Uy9jC82FrXQlMsiNwKXAhsDtwPnBpv3yYbwJnAu/aGv2R5oqhTRrT9Ns2g1e/0nlvkruS3JfkhiQ/kuRk4ATgTf3to7/v638lyW8luQF4KMn2SU5PcluSB5L8a5JX9HV/GDgHeE6/j3v75RtdwUvy+iSrk3wzycok+w2sqySnJPlyknuSnJ0kI47ziUnOTLKuf53ZL/tB4Na+2r1JPjFi+xOTfDXJ3UneOm3d7yW5sH//pCQX9vXuTfLZJPv06/ZI8sG+/XuS/F2//PlJ1vZjdyfwwSRPGBi7u5N8JMkefZP/MtDfB5M8p9/P65Lc3O/7iiTLRnzsm2w//apnP7Zv6Mf2gSTvSPL0JJ9Kcn/fnx0H6r80yfX9MX8yybNGtD21719LcnuSbyR5d5In9OuekOS3+7G+K8mHkuzar9vo6ll/7r4jyTV9H69MsucMx/iMJP/cn8vfSPI3Q/r2xCQPAtsBX0hyW7/8h/v27k1yU5KXDWzzV0nen+SyJA8BLxhx6MtG9HVczwe2B86squ9U1VlAgJ8ZVrmq/rGqPgKs28x2pMeVoU2aGy8Gngf8ILAb8Crg7qo6F7gI+OP+9tExA9scD7wE2K2qHgVuA/4TsCvw+8CFSfatqpuBU4BP9fvYbXrjSX4GeCfwC8C+wFeBi6dVeynwE8CP9fX+84hjeStwOPDsvu5hwG9X1ZeAZ/Z1dquqTX4AJjkYeD9wIrAf8BRgyYh2XtMf69K+3inAt/p1FwA79e3tDbx3YLunAnvQXeE5Gfg14OXAEX2b9wBn93WfN9DfnavqU0leDrwFeCWwF/B/gQ+P6OMm24+odyRwKN24vQk4ly6sLwV+hO6zJskhwHnAL/XH/OfAyiRPHLFfgFcAK4BDgGOB1/XLX9u/XgA8DdgZeN8M+/kvwEl047kj8BszHOM7gCvprlItAf50+s76MLRzX/yxqnp6utvnf99vuzfwq8BFSX5oWj/OAHYBNrrlP0Zf6cPgqNfpfbVnAjfUxr+n8QYeO3+lJhnapLnx73Q/hP4jkKq6uarWz7LNWVW1pqq+BVBV/6uq1lXV96rqb4Av0wWmcZwAnFdVn6uq7wBvprsyt3ygzruq6t6qugP4J7pQNmpfb6+qu6pqA12APHHMfvwc8LGq+pe+H28Dvjei7r/TBZdnVNV3q+q6qro/yb7AUcApVXVPVf17Vf3zwHbfA363Dw3fogtAb62qtX2bvwf8XEbfOv0l4J39Z/Qo8IfAs2e42jaOP6qq+6vqJuCLwJVVdXtV3QdcDkx9Qf/1wJ9X1bX9MZ8PfIcu7M2072/2n9uZ9AGQ7nN6T9/Og3Sf+XEzHPcHq+pL/Zh9hNGfP3SfzTJgv6r6dlWNClfTHU4XHt9VVY9U1SeAjw30GeDSqrqmP8+/vbl9rardZnhN3d7cGbhv2j7vo/s7KjXL0CbNgf6H0/vorvB8Pcm5SX5gls3WDBaSvHrgttm9dFdoxr0ttB/d1bWp/jwI3A3sP1DnzoH3D9P9YJt1X/37/UbUHbbt94+rqh7q+zHMBcAVwMX9bdA/7q/ULAW+WVX3jNhuw7Qf9suAjw6M283Ad+m+fzfMMuBPBup/k+7W2f4j6o/j6wPvvzWkPDXWy4A3Dl4dojvemcZ38DwZ/CyGfU7bM/q4x/38obtaGOAz/S3O181Qd9B+wJqqGgzqX2XjsV3D7Danr8M8CEz/+/cDwAObuR9pm2Jok8b3EN0tuylPHVxZVWdV1aF0t2B+EPjNqVUj9vf95f1Vnr8ATgWe0t8C/SLdD86Z9jFlHV0gmNrfk+muYn1tlu1m3RdwAON/12c9XQiZ6sdOfT820V9B+/2qOhj4Kbrbt6+m+6G+R5LdRrQxfSzWAEdNu+LypKr62pC6U/V/aVr9/1BVnxyjrUmtAc6Y1vZOVTXq9iwMjCcbfxbDPqdH2TgwjmOTY6yqO6vq9VW1H92VyT/LeP/1zTpg6dT37gb6NXgeTjSm/ffuRr3e0le7CXhWstH3Np/FNvIAjbSlDG3S+K4HXplkp/4H2C9OrUjyE0l+sr9S9BDwbbqrPdD9EH3aLPt+Mt0Psw39/k6iu9I25evAkox++u2vgZPS/TcHT6S75XdtVX1lM45vyoeB306yV/8F8N+hewpvHP8beGmSn+77+nZGzDNJXpDkR9M9QXg/3S257/a3lS+nCwq7J9khyfOG7aN3DnDG1O3Nvt/H9us20N1Ofdq0+m9O8sy+/q5Jfn7EvodtP4m/AE7pz5UkeXKSlySZ6bbdb/bjsBQ4DZh6KODDwH9PcmCSnek+87/pb/lujk2OMcnPJ5n6LuI9dOfmrP99CHAt3fn/pv5zez5wDJt+v3KL9d+7G/X6w77a1X1/f61/YOLUfvmoh2e2S/IkuiuVT0j3kMwOc9Vnaa4Y2qTxvRd4hC5AnU/3gMGUH6D7gXwP3e2gu+n+/yqAvwQO7m+H/d2wHVfVvwL/E/hUv/8fBa4ZqPIJuqsEdyb5xpDtP073/bFL6K52PR04bksOEvgDYBXdF7dvBD7XL5tV/52uX6ELkevpxmPtiOpPpQt599Pd0vxnHguHJ9KFuFuAu4Bfn6HZPwFWAlcmeQD4NPCTfX8epvvS+zX9+B9eVR8F/ojutuz9dFc0jxpxPJtsP9sYzKSqVtF9r+19dGOzmu5hgplcClxH94+Gf6A7n6B7oOECuqc//43uHwq/ugV9GnaMPwFcm+7p0JXAaVX1b2Ps6xHgZXTj+Q3gz4BXV9Utm9uvSfT9eDndldt76R7eeHm/fOo/SB686nYi3W3s99M9DPQtur/P0jYlGz9cI0naViQp4KCqWj3ffZE0/7zSJkmS1ABDmyRJUgO8PSpJktQAr7RJkiQ1oMlftrznnnvW8uXL57sbkiRJs7ruuuu+UVV7TbqfJkPb8uXLWbVq1Xx3Q5IkaVZJvjp7rdl5e1SSJKkBhjZJkqQGGNokSZIaYGiTJElqgKFNkiSpAYY2SZKkBhjaJEmSGmBokyRJaoChTZIkqQGGNkmSpAYY2iRJkhpgaJMkSWqAoU2SJKkBhjZJkqQGGNokSZIaYGiTJElqgKFNkiSpAYY2SZKkBhjaJEmSGmBokyRJaoChTZIkqQGGNkmSpAYY2iRJkhpgaJMkSWqAoU2SJKkBcxLakhyZ5NYkq5OcPmR9kpzVr78hySHT1m+X5PNJPjYX/ZEkSVpoJg5tSbYDzgaOAg4Gjk9y8LRqRwEH9a+TgfdPW38acPOkfZEkSVqo5uJK22HA6qq6vaoeAS4Gjp1W51jgQ9X5NLBbkn0BkiwBXgJ8YA76IkmStCDNRWjbH1gzUF7bLxu3zpnAm4DvzdRIkpOTrEqyasOGDRN1WJIkqTVzEdoyZFmNUyfJS4G7quq62RqpqnOrakVVrdhrr722pJ+SJEnNmovQthZYOlBeAqwbs85zgZcl+QrdbdWfSXLhHPRJkiRpQZmL0PZZ4KAkBybZETgOWDmtzkrg1f1TpIcD91XV+qp6c1Utqarl/XafqKr/Ogd9kiRJWlC2n3QHVfVoklOBK4DtgPOq6qYkp/TrzwEuA44GVgMPAydN2q4kSdJikqrpXz/b9q1YsaJWrVo1392QJEmaVZLrqmrFpPvxNyJIkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1IA5CW1Jjkxya5LVSU4fsj5JzurX35DkkH750iT/lOTmJDclOW0u+iNJkrTQTBzakmwHnA0cBRwMHJ/k4GnVjgIO6l8nA+/vlz8KvLGqfhg4HPiVIdtKkiQtenNxpe0wYHVV3V5VjwAXA8dOq3Ms8KHqfBrYLcm+VbW+qj4HUFUPADcD+89BnyRJkhaUuQht+wNrBspr2TR4zVonyXLgx4Fr56BPkiRJC8pchLYMWVabUyfJzsAlwK9X1f1DG0lOTrIqyaoNGzZscWclSZJaNBehbS2wdKC8BFg3bp0kO9AFtouq6m9HNVJV51bViqpasddee81BtyVJktoxF6Hts8BBSQ5MsiNwHLByWp2VwKv7p0gPB+6rqvVJAvwlcHNVvWcO+iJJkrQgbT/pDqrq0SSnAlcA2wHnVdVNSU7p158DXAYcDawGHgZO6jd/LnAicGOS6/tlb6mqyybtlyRJ0kKSqulfP9v2rVixolatWjXf3ZAkSZpVkuuqasWk+/E3IkiSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSA+YktCU5MsmtSVYnOX3I+iQ5q19/Q5JDxt12qOuug+XL4aKL5qL7o110UdfOE55ge621t5CPzfZsz/bmr72FfGy2t9XaOxQOnZP9VdVEL2A74DbgacCOwBeAg6fVORq4HAhwOHDtuNsOex0KVVC1005VF15YW8WFF3b7n2rL9tppbyEfm+3Znu3NX3sL+dhsb6u2dyhUTZi3quvxxKHtOcAVA+U3A2+eVufPgeMHyrcC+46z7bDXoYMDfsABVUccUXXBBd0gPfRQV7744q58771d+ZJLuvKGDV155cquvH59V7788q58xx1dee+9N/5gp1777detv+aarv6NN3blz3ymK3/+813585/vyp/5TFe+8caufM01XfmWW7ry1Vd35f32G97e3nt369ev7+qvXNmVN2zoypdc0pXvvbcrX3xxV37ooa58wQVd+ZFHuvIHP9iVly0b3t7uu1cdeWR935lnVh1zzGPld7+76pWvfKz8zndWvepVj5Xf/vaqE054rPy2t1W99rWj29tll6o3vOGx+qed1r2mvOENVW9842Pl17++6vTTHyu/9rVdG1NOOKFq112Ht7VsWdf3d7/7sfrHHNMd45Qjj6w6++zHyi98YdW55z5WPuKIbgyrujE94oiqpzxleHtLl27ZuXfVVV35ttu68tVXd+VbbunK++wzvL19992yc++227ryVVd15Tvu6MqXX96VlywZ3t6ee27ZuTfl3HO78Z1y9tnd+I86V3bbbcvOvSmnn96dP1Pe+Mbu/BrV3s47b/659/a3P1Z+1au6Pk6ZOvdGtfekJ23+uTfOvDeqvSc+cfPPvXHmvZna29xzb5x5b6b2NvfcmzJq3hvV1q67btm5N2XUvDeqvSc/ecvOvSmj5r2ZxnJLzr2qmee9mdrbknOvauZ5b6b2tuTcq5p53htob65C21zcHt0fWDNQXtsvG6fOONsCkOTkJKuSrNpoxZo1w6pPbsOG4cvXr9867Y3a76h+TOqOO4Yvv+eex7e9Bx6Y+7buu2/z+jCpu+8evnzt2q3T3l13DV9+551bp72vfW348lHHPalRn9O99z6+7T344OPb3re//fi2953v2N5ctTVqztla7T300OPb3kL47Lal9iYxaeoDfh74wED5ROBPp9X5B+CnB8ofp7u/O+u2w14bXWlbtqy2ilGJ3Pa2/fYW8rHZnu3Z3vy1t5CPzfa2anvb0pW2tcDSgfISYN2YdcbZdrSddoIzzticvo7vjDO6/dtee+0t5GOzPduzvflrbyEfm+09Pu1NatLUB2wP3A4cyGMPEzxzWp2XsPGDCJ8Zd9thr0OnkvHW+vLglAsv7NpJbK+19hbysdme7dne/LW3kI/N9rZae3N1pS3VhaeJJDkaOJPuadDzquqMJKf0ofCcJAHeBxwJPAycVFWrRm07W3srVqyoVatWzVZNkiRp3iW5rqpWTLyfuQhtjzdDmyRJasVchTZ/I4IkSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDZgotCXZI8lVSb7c/7n7iHpHJrk1yeokpw8sf3eSW5LckOSjSXabpD+SJEkL1aRX2k4HPl5VBwEf78sbSbIdcDZwFHAwcHySg/vVVwE/UlXPAr4EvHnC/kiSJC1Ik4a2Y4Hz+/fnAy8fUucwYHVV3V5VjwAX99tRVVdW1aN9vU8DSybsjyRJ0oI0aWjbp6rWA/R/7j2kzv7AmoHy2n7ZdK8DLp+wP5IkSQvS9rNVSPKPwFOHrHrrmG1kyLKa1sZbgUeBi2box8nAyQAHHHDAmE1LkiQtDLOGtqr62VHrknw9yb5VtT7JvsBdQ6qtBZYOlJcA6wb28RrgpcALq6oYoarOBc4FWLFixch6kiRJC9Gkt0dXAq/p378GuHRInc8CByU5MMmOwHH9diQ5Evgt4GVV9fCEfZEkSVqwJg1t7wJelOTLwIv6Mkn2S3IZQP+gwanAFcDNwEeq6qZ++/cBuwBXJbk+yTkT9keSJGlBmvX26Eyq6m7ghUOWrwOOHihfBlw2pN4zJmlfkiRpsfA3IkiSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAwxtkiRJDTC0SZIkNcDQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVIDDG2SJEkNMLRJkiQ1wNAmSZLUAEObJElSAyYKbUn2SHJVki/3f+4+ot6RSW5NsjrJ6UPW/0aSSrLnJP2RJElaqCa90nY68PGqOgj4eF/eSJLtgLOBo4CDgeOTHDywfinwIuCOCfsiSZK0YE0a2o4Fzu/fnw+8fEidw4DVVXV7VT0CXNxvN+W9wJuAmrAvkiRJC9akoW2fqloP0P+595A6+wNrBspr+2UkeRnwtar6wmwNJTk5yaokqzZs2DBhtyVJktqy/WwVkvwj8NQhq946ZhsZsqyS7NTv48Xj7KSqzgXOBVixYoVX5SRJ0qIya2irqp8dtS7J15PsW1Xrk+wL3DWk2lpg6UB5CbAOeDpwIPCFJFPLP5fksKq6czOOQZIkacGb9PboSuA1/fvXAJcOqfNZ4KAkBybZETgOWFlVN1bV3lW1vKqW04W7QwxskiRJm5o0tL0LeFGSL9M9AfougCT7JbkMoKoeBU4FrgBuBj5SVTdN2K4kSdKiMuvt0ZlU1d3AC4csXwccPVC+DLhsln0tn6QvkiRJC5m/EUGSJKkBhjZJkqQGGNokSZIaYGiTJElqgKFNkiSpAYY2SZKkBhjaJEmSGmBokyRJaoChTZIkqQGGNkmSpAYY2iRJkhpgaJMkSWqAoU2SJKkBhjZJkqQGGNokSZIaYGiTJElqgKFNkiSpAYY2SZKkBhjaJEmSGmBokyRJaoChTZIkqQGGNkmSpAYY2iRJkhpgaJMkSWpAqmq++7DZkjwA3Drf/dgG7Ql8Y747sY1xTIZzXIZzXIZzXDblmAznuAz3Q1W1y6Q72X4uejIPbq2qFfPdiW1NklWOy8Yck+Ecl+Ecl+Ecl005JsM5LsMlWTUX+/H2qCRJUgMMbZIkSQ1oNbSdO98d2EY5LptyTIZzXIZzXIZzXDblmAznuAw3J+PS5IMIkiRJi02rV9okSZIWFUObJElSA7ap0JbkyCS3Jlmd5PQh65PkrH79DUkOGXfblo0xLif043FDkk8m+bGBdV9JcmOS6+fqkeNtxRjj8vwk9/XHfn2S3xl325aNMS6/OTAmX0zy3SR79OsW5PmS5LwkdyX54oj1i3VumW1cFt3cMsaYLNZ5ZbZxWXTzCkCSpUn+KcnNSW5KctqQOnM3v1TVNvECtgNuA54G7Ah8ATh4Wp2jgcuBAIcD1467bauvMcflp4Dd+/dHTY1LX/4KsOd8H8c8jcvzgY9tybatvjb32IBjgE8sgvPlecAhwBdHrF90c8uY47IY55bZxmTRzSvjjMu0uotiXumPbV/gkP79LsCXtmZ22ZautB0GrK6q26vqEeBi4NhpdY4FPlSdTwO7Jdl3zG1bNeuxVdUnq+qevvhpYMnj3Mf5MMlnvqjPl2mOBz78uPRsHlXVvwDfnKHKYpxbZh2XxTi3jHGujLKoz5VpFsW8AlBV66vqc/37B4Cbgf2nVZuz+WVbCm37A2sGymvZ9MBH1Rln21Zt7rH9Il2in1LAlUmuS3LyVujffBl3XJ6T5AtJLk/yzM3ctkVjH1uSnYAjgUsGFi/U82U2i3Fu2VyLZW4Zx2KbV8a2mOeVJMuBHweunbZqzuaXbenXWGXIsun/H8moOuNs26qxjy3JC+gm1p8eWPzcqlqXZG/gqiS39P9iat044/I5YFlVPZjkaODvgIPG3LZVm3NsxwDXVNXgv54X6vkym8U4t4xtkc0ts1mM88rmWJTzSpKd6YLqr1fV/dNXD9lki+aXbelK21pg6UB5CbBuzDrjbNuqsY4tybOADwDHVtXdU8ural3/513AR+kuxy4Es45LVd1fVQ/27y8Ddkiy5zjbNmxzju04pt3CWMDny2wW49wylkU4t8xokc4rm2PRzStJdqALbBdV1d8OqTJn88u2FNo+CxyU5MAkO9J98Cun1VkJvLp/EuNw4L6qWj/mtq2a9diSHAD8LXBiVX1pYPmTk+wy9R54MTD0yZ8GjTMuT02S/v1hdOf73eNs27Cxji3JrsARwKUDyxby+TKbxTi3zGqRzi0zWqTzylgW47zSnwt/CdxcVe8ZUW3O5pdt5vZoVT2a5FTgCronKs6rqpuSnNKvPwe4jO4pjNXAw8BJM207D4cx58Ycl98BngL8WT+XPFpVK4B9gI/2y7YH/rqq/s88HMacG3Ncfg745SSPAt8CjqvukZ3Ffr4AvAK4sqoeGth8wZ4vST5M99TfnknWAr8L7ACLd26BscZl0c0tY4zJoptXYKxxgUU2r/SeC5wI3Jjk+n7ZW4ADYO7nF3+NlSRJUgO2pdujkiRJGsHQJkmS1ABDmyRJUgMMbZIkSQ0wtEmSJDXA0CZJktQAQ5skSVID/j/KzIQjDGsZmgAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "clTk4dy-DZte"
},
"source": [
"## Initial Condition\n",
"To get a specify solution to a first order initial value problem, an __initial condition__ is required.\n",
"\n",
"For our population problem the intial condition is:\n",
"\\begin{equation}\n",
"y(0)=10.\n",
"\\end{equation}\n",
"This gives the analytic solution\n",
"\\begin{equation}\n",
"y=10e^{\\epsilon t}.\n",
"\\end{equation}\n",
"### Growth rate \n",
"Let the growth rate\n",
"\\begin{equation}\n",
"\\epsilon=0.5\n",
"\\end{equation}\n",
"giving the analytic solution.\n",
"\\begin{equation}\n",
"y=10e^{0.5 t}.\n",
"\\end{equation}\n",
"The plot below shows the exact solution on the discrete time steps."
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "sn9blzcGDZtf",
"outputId": "3b552b52-5b1e-4f1c-c825-2a06da11e891"
},
"source": [
"## Analytic Solution y\n",
"y=10*np.exp(0.5*time)\n",
"\n",
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(time,y,'o:',color='black')\n",
"plt.xlim((0,2))\n",
"plt.xlabel('time')\n",
"plt.ylabel('y')\n",
"plt.title('Analytic (Exact) solution')\n",
"plt.plot();"
],
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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IgkWt0TOzF4EpgC9zGypmV0N3G9mX5nZbOBU4P+Ezu1qZm8CuHslMBJ4G5gLvOTuc+IVp4gES4R888034XVNx4wZw6BBg1i7di0ADz/8MLNnzw7PLt1nn31U101EJAnErY5cIqiOnEjstm3bhrvTsmVLXnrpJS666CKmT59O//79KS0tpby8nKOOOio821RERBpWsteRE5EkU/MPt0WLFtGhQwdefvllAE4//XSefPJJDjroIAACgQD9+/dXEicikuR0lxZpQnZVoPfkk0/m7rvvBuAnP/kJV111FYcccggA7du355prrqF9+/YJi11ERPZcIurIiUgcRCrQe8UVVwDBdUp79epF165dgeDM04cffjhBkYqISEPRM3IiTUTHjh0pLy/faX8gEKCkpKTxAxIRkV3SM3Iiaeybb77h1ltvZfv27QARkzggauFeERFJfUrkRFLE2rVreeqpp1ixYgUA8+fP58EHH+Sbb4LLEEcrxKsCvSIiTZcSOZEkVVlZyXvvvcf8+fMBWLlyJddeey3vvPMOAAMHDmTt2rXhdUzvueceFegVEUkzSuREkkhpaSlz5gTrX//4448MHDiQoqIiAHr37s28efO4/PLLAWjZsiVt2rQJt1WBXhGR9KPJDiIJ9OOPP1JWVkbPnj0BOPjggzn00EOZOHEiEFwKq1+/fjskbCIi0jRosoNIkotU1632pISLL76YgQMHhreLiooYPXp0ePvYY49VEiciIlGpR04kTurWdQPIzMykurqa9evXk5WVxYcffsiGDRs499xzw+uYiohIemiIHjkVBBZpYO5OdXU1BQUFOyRxANu3b2f//fenqqoKgFNOOSUBEYqISFOhoVWRBlDTs71gwQK6devG66+/HrV+27p162jbtm1jhiciIk2UEjmRetiyZQs//elPGTVqFAC5ubmcdtppZGdnq66biIjEnRI5kT108cUXc9111wGwzz77cNRRR4WTsxYtWjBu3DiOP/54CgsLVddNRETiSs/IiezGXXfdxRdffMGrr74KQPfu3WnXrl34+DPPPBOxXU39toKCAsrKysjJyaGwsFB13UREpMGoR07SSqRyIHX97W9/4+STT6a6uhqA1q1bs++++4afgxs1ahQFBQUxfV5eXh4lJSVUV1dTUlKiJE5ERBqUeuQkbdQtB1JaWkp+fj4LFy7kP//5D+PHjyc7O5tmzZrRokUL1q5dS4cOHbjxxhsTHLmIiEhkqiMnaSM3N5fS0tKd9nfu3JmOHTvy/PPPc+SRRzZ+YCIikpZUR04kBhs3buSGG26IWg5k1apVrFixopGjEhERqb+4PSNnZs+a2Woz+7rWvlFmNs/MZpvZq2bWLkrbEjP7ysxmmZm62GSP3XjjjTz88MNA8Bm3Tz/9dIcJCrWpHIiIiKSqeE52eA44p86+SUBfdz8cWADctov2p7r7kfXtcpT0MHr0aG6++ebw9rx58ygpKQHAzJgzZw6PPPKIyoGIiEiTErdEzt0/BtbW2feOu1eGNqcCB8br86VpGzduHEOHDg1vl5WVsWjRovD2xIkTwz1yEEzm8vLyKCoqIhAIYGYEAgGKioo0k1RERFJWIsuPXAW8FeWYA++Y2Uwzy9/Vm5hZvpnNMLMZ5eXlDR6kxFcs5UAA3n33Xc4++2y2bt0KwJo1aygpKQnPQB07dmy4zhsQdQF6lQMREZGmJCGJnJkVAJVA5L+14Xh3PwoYAFxnZidFey93L3L3/u7ePzs7Ow7RSrzUlAMpLS3F3cPlQIqLi5k9eza/+MUvWLhwIQDbtm1j9erVLFu2DIDf/va3TJkyZaehUhERkXTS6ImcmQ0DzgXyPErtE3dfHvpzNfAq8PPGi1AaS0FBQbhHrcbmzZspKCggKyuLxYsXh2eTDhw4kC+++IIePXokIlQREZGk1KjlR8zsHOB3wMnuvjnKOa2BDHffEHp9FnBXI4YpjWD79u0Ra7pB8Hm3gw8+mHnz5jVyVCIiIqklnuVHXgSmAL3MbKmZXQ08CrQFJoVKizwZOrermb0ZatoJ+MTMvgQ+A95w93/HK05pPFdddVV4lYTMzExatWoV8TyVAxEREYlN3Hrk3H1ohN0RVxcPDaUODL3+FjgiXnFJfLl7eKLBTTfdxNy5c3njjTeAYD231q1bh899+umnd1gyC1QOREREZE9oZQepl+3bt5OZmQnA/fffz5NPPsnixYsxMw488EC2bdsWTu4eeeSRHdrWzBgtKCigrKyMnJwcCgsLNZNUREQkRoksPyJJaHflQLZs2UJVVRUQrOXWrl07KioqAOjVqxcDBw4M97DdcMMNjB07NmopEFA5EBERkfpQIidhkcqBjBgxgr/85S8AfPDBB7Rr147PPvsMgL59+zJixAi2b98OwODBg3n00Ud3GD4VERGR+LEoFUBSUv/+/X3GDC3Nurdyc3MjziRt3749FRUVlJeXM2rUKEaMGEHPnj0TEKGIiEjTYWYz67sUqRK5NFdSUsKWLVvo3bs3GRkZRPp9MDOqq6sTEJ2IiEjT1RCJnIZW08xXX33FBx98EN4+/fTTueOOO4DoZT9UDkRERCQ5KZFr4mbMmMFzzz0X3r7lllu4/vrrw9tPPfUUd90VrLdcWFi405JXKgciIiKSvJTINTGfffYZd9xxR3iItLi4mJEjR1JZWQnA6NGjw3XdAM444wwOO+wwIDiDtKioiEAggJkRCAQoKirSTFIREZEkpUQuye2uHMgXX3zBlVdeybp16wCYOXMmDzzwQHiN0ltvvZWlS5fSvHmwZOBhhx1GIBCI+nkqByIiIpI6lMglsUjlQIYPH87RRx/Nl19+CcD333/P66+/zuLFiwEYNmwY69ato2vXrgB06tSJdu3aJeoriIiISBxpZYckVVVVRUFBwQ7LVwFs3bqV2bNns2rVKgBOOeUUysvLw0V36z7jJiIiIk2XErkksH37dtatW0d2djbbt2+nT58+DB06lLKysojnV1VVcdZZZwGQkaFOVRERkXSlLCABVq5cGR4aBejXrx8jR44EIDMzk8GDB3PEEUeoHIiIiIjsknrkGsGcOXOYP38+Q4YMAeCyyy6joqKCL774AoDbbruNjh07hs8fPXo0EBxGzc/P32F4VeVAREREpIZ65PbQ7maRAkyfPj1cmw3g8ccfZ9iwYeHF5v/whz/wxBNPhI8PGzaMAQMG7PQ+KgciIiIiu6IluvZAzSzSuj1kt9xyCwsWLODJJ5+kbdu2jB07lptuuolly5aRnZ1NaWkpGRkZdO/ePW6xiYiISGrRWqt1xDORc3dyc3MjTkDo2LEjmZmZvPXWW/Tr14+NGzfSvHlzWrVqFZdYREREJPU1RCKnZ+SiWLt2Le5O+/bt+fbbbzn22GMpLy+PeG55efkOi8q3adOmscIUERGRNKZn5Aj2tk2dOjU8k3Tjxo1kZ2fz+OOPA9C9e3d+8Ytf7DAhoTbNIhUREZFESNtEbvz48bz00kvh7SFDhoRni7Zp04bHHnuMQYMGAcGSIM8++ywPPPCAFpUXERGRpBG3Z+TM7FngXGC1u/cN7TsAmADkAiXAhe7+fYS25wBjgGbA0+5+b4yf6YFAgMLCwp1mdj722GMsWbKEe+8NvtUpp5yCmfHBBx8AMGXKFAKBQHhpq2iKi4spKCigrKyMnJyciJ8lIiIisjtJPdnBzE4CNgIv1Erk7gfWuvu9ZnYrsL+7/65Ou2bAAuBMYCkwHRjq7t/E8JkOwV6ywYMHU1JSwqeffgrAyJEjmT9/PpMmTQKgoqKCAw44QCsjiIiISEIkdSIHYGa5wMRaidx84BR3X2FmXYAP3b1XnTbHAne6+9mh7dsA3P1PMXxe+Mu0b9+ec845h7/85S9kZmbi7uH1SEVEREQSrSESucbujurk7isAQn9Gmj3QDVhSa3tpaF9EZpZvZjPMbIe6I2vXrmXcuHFkZmbWnFff2EVERESSSjKWH4mUcUXtNnT3IqAIduyR00xSERERaeoau0duVWhIldCfqyOcsxSovQTCgcDyPfkQzSQVERGRdNDYidxrwLDQ62HAvyKcMx3oaWYHmVkL4OJQu5hoPVIRERFJF3EbWjWzF4FTgA5mthT4X+Be4CUzuxooAy4InduVYJmRge5eaWYjgbcJlh951t3nxPKZRx99NPFca1VEREQkmcQtkXP3oVEOnR7h3OXAwFrbbwJvxik0ERERkSZBRdREREREUpQSOREREZEUpUROREREJEUpkRMRERFJUXFdoquxmdkGYH6i40gyHYCKRAeRhHRdItN1iUzXZWe6JpHpukSm6xJZL3dvW583SMaVHepjfn3XLGtqzGyGrsnOdF0i03WJTNdlZ7omkem6RKbrElnd5UX3hoZWRURERFKUEjkRERGRFNXUErmiRAeQhHRNItN1iUzXJTJdl53pmkSm6xKZrktk9b4uTWqyg4iIiEg6aWo9ciIiIiJpQ4mciIiISIpKiUTOzM4xs/lmtsjMbo1w3MxsbOj4bDM7Kta2qSyG65IXuh6zzexTMzui1rESM/vKzGY1xPTnZBLDdTnFzH4IffdZZvY/sbZNVTFck5trXY+vzazKzA4IHWvKvyvPmtlqM/s6yvG0u7fEcE3S9b6yu+uSdvcViOm6pN29xcy6m9kHZjbXzOaY2W8jnNNw9xZ3T+ofoBmwGPgJ0AL4EuhT55yBwFuAAf8FTIu1bar+xHhdjgP2D70eUHNdQtslQIdEf48EXZdTgIl70zYVf/b0ewGDgPeb+u9K6LudBBwFfB3leDreW3Z3TdLuvhLjdUmr+0qs16XOuWlxbwG6AEeFXrcFFsQzb0mFHrmfA4vc/Vt33waMBwbXOWcw8IIHTQXamVmXGNumqt1+N3f/1N2/D21OBQ5s5BgToT7/zZvq78uefq+hwIuNElmCufvHwNpdnJJ295bdXZM0va/E8rsSTZP9XYE9vi5pcW9x9xXu/nno9QZgLtCtzmkNdm9JhUSuG7Ck1vZSdr4g0c6JpW2q2tPvdjXB7L+GA++Y2Uwzy49DfIkS63U51sy+NLO3zOywPWybamL+XmaWBZwDvFxrd1P9XYlFOt5b9kS63FdilU73lT2SrvcWM8sFfgpMq3Oowe4tqbBEl0XYV7dmSrRzYmmbqmL+bmZ2KsEb7gm1dh/v7svNrCMwyczmhf5llepiuS6fAwF332hmA4F/Aj1jbJuK9uR7DQImu3vtf2E31d+VWKTjvSUmaXZfiUW63Vf2VNrdW8ysDcHE9QZ3X1/3cIQme3VvSYUeuaVA91rbBwLLYzwnlrapKqbvZmaHA08Dg919Tc1+d18e+nM18CrB7tymYLfXxd3Xu/vG0Os3gUwz6xBL2xS1J9/rYuoMfTTh35VYpOO9ZbfS8L6yW2l4X9lTaXVvMbNMgklcsbu/EuGUBru3pEIiNx3oaWYHmVkLgr8Mr9U55zXg8tAskP8CfnD3FTG2TVW7/W5mlgO8Alzm7gtq7W9tZm1rXgNnARFnHKWgWK5LZzOz0OufE/z/YE0sbVNUTN/LzPYDTgb+VWtfU/5diUU63lt2KU3vK7uVhveVmKXbvSX0e/AMMNfdH4xyWoPdW5J+aNXdK81sJPA2wdkcz7r7HDO7NnT8SeBNgjNAFgGbgSt31TYBX6PBxXhd/gdoDzweur9Uunt/oBPwamhfc+Bv7v7vBHyNBhfjdfn/gF+bWSWwBbjYg9OFmuTvS4zXBOCXwDvuvqlW8yb7uwJgZi8SnG3YwcyWAv8LZEL63ltiuCZpd1+BmK5LWt1XasRwXSD97i3HA5cBX5nZrNC+24EcaPh7i5boEhEREUlRqTC0KiIiIiIRKJETERERSVFK5ERERERSlBI5ERERkRSlRE5EREQkRSmRE5G0ZGbtzOz/D73uamb/SHRMIiJ7SuVHRCQthdZAnOjufRMdi4jI3kr6gsAiInFyL9AjVLBzIdDb3fua2RXA+QSLcfYFHgBaECzw+SMw0N3XmlkP4DEgm2BBzxHuPq+xv4SIpDcNrYpIuroVWOzuRwI31znWF7iE4NqPhcBmd/8pMAW4PHROEXC9ux8N3AQ83hhBi4jUph45EZGdfeDuG4ANZvYD8Hpo/1fA4WbWBjgO+HtoiSGAlo0fpoikOyVyIiI7+7HW6+pa29UE75sZwLpQb56ISMJoaFVE0tUGoO3eNHT39cB3ZnYBgAUd0ZDBiYjEQomciKQld18DTDazr4FRe/EWecDVZvYlMAcY3JDxiYjEQuVHRERERFKUeuREREREUpQSOREREZEUpUROREREJEUpkRMRERFJUUrkRERERFKUEjkRERGRFKVETkRERCRF/V/STQS6MSg7xAAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GnFTxKeADZtf"
},
"source": [
"## Numerical approximation of Population growth\n",
"The differential equation is transformed using the Euler method into a difference equation of the form\n",
"\\begin{equation} w_{i+1}=w_{i}+h \\epsilon w_i. \\end{equation}\n",
"This approximates a series of of values $w_0, \\ w_1, \\ ..., w_{N}$.\n",
"For the specific example of the population equation the difference equation is\n",
" \\begin{equation} w_{i+1}=w_{i}+h 0.5 w_i. \\end{equation}\n",
"where $w_0=10$. From this initial condition the series is approximated.\n",
"The plot below shows the exact solution $y$ in black circles and Euler approximation $w$ in blue squares. "
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "Pl9nDiWrDZtg",
"outputId": "5e9beb39-22b2-42a0-85a9-5c10fdfaa945"
},
"source": [
"w=np.zeros(N+1)\n",
"w[0]=10\n",
"for i in range (0,N):\n",
" w[i+1]=w[i]+h*(0.5)*w[i]\n",
"\n",
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(time,y,'o:',color='black',label='exact')\n",
"plt.plot(time,w,'s:',color='blue',label='Euler')\n",
"plt.xlim((0,2))\n",
"plt.xlabel('time')\n",
"plt.legend(loc='best')\n",
"plt.title('Analytic and Euler solution')\n",
"plt.plot();"
],
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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dO3alffeew+A1atXF/p5CxYsYOzYsUyePJnZs2cTHx/PwoUL6dOnD3/961/585//TL9+/WjdujVVq1blrbfeYtasWXz22WfcdtttuDvz5s1j2LBhTJo0iTlz5jB8+HBOO+00+vTpw6OPPsrs2bNp3rx50d0kEREROSS//PILAPHx8fTr148+ffoAkJqaysiRI2nWrFmRfE6pXFz8UC1fHvYZA9avX3/Q5/z000+ZOXMmHTp0AGDHjh3Uq1ePv/3tb3To0IGqVasyYsQIIMgfNmTIEL788kvi4uJYsWIFa9asYdKkSfz2t78lKSkJgCOOOOKg2yMiIiLFa8yYMaSmpjJ9+nROPvnk3I6dHKmpqaSmpmJmMw/1s8psQPb555/nvk9ISNhnOzk5OexjqMnJyQAkJSXtU75BgwaFfp67c/XVV/Pggw/us3/16tVs3bqVPXv2sHPnThITExk9ejQZGRnMnDmThIQEUlJS2LlzJ+6uNBYiIiKl2Lp169i0aRPNmzenZ8+e3H333bRo0WK/cg0awJo1OVsnl0wesrJm2LBh+43rVq9enWHDDv6Zgm7duvHGG2+wdu1aADZs2JA7N+2+++4jNTWVO+64A4BNmzZRr149EhIS+Oyzz3KDw27dujFu3LjcnroNGzYAULNmTbZs2XLQbRMREZFDl52dTadOnRg4cCAAtWrV4q677uKwww7br+zeYKxolNkesoKkpqYCQY6QpUuXkpyczLBhw3L3H4xWrVpx//330717d7Kzs0lISKBv375UqlSJK6+8kqysLE477TQmTZpEamoqvXv3pn379rRr146WLVsCcPzxxzN06FC6dOlCfHw8J554Ii+99BKXX345AwcOZMSIEbzxxhuaRyYiIlJCsrKyeP/99+nTpw9xcXH84x//KLJ5YQfC3L3EP7Qw7du397S0tH32LViwgOOOOy5GLYqtinztIiIixem1117jyiuvZOLEiXTv3j2qOiNHwuDBefe0xz3tkOYklcseMhEREZFIZs2axebNm+natSuXXHIJiYmJnHPOOQXW2bIFKlWCatXgqKOKvk3lcg6ZiIiISDjuzjXXXMOdd94JQKVKlejTp0+BD92tXRsEYaFkCpx9dtG3SwGZiIiIlGu//vor9957L7t27cLMGDNmDBMnTiywzp49MDOUzKJePfj97+Gss/Yer1+/aNuo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M3nggQc49thjueyyy2jatClQJULpBhxxBEyYAB2CBycxg8MOK6nWiojspR4yESnTFixYwIcffghApUqVePPNN5kyZQoAVapECsb2OuecYK6YiEgsKSATkTLF3feZEzZkyBAGDRpEznzYF16YTmbmcHbtilULRUQOnAIyESn13D034HrkkUc4+uij2bBhAwD33PMI99wzh9Wrg/xga9dW4ZVXYP78mDVXROSAKSATkVItLS2Nli1bMnv2bAB69+7NQw89w/r1wZJF1aq14Nprj+CNN4Ly3bsHE/NPPDFGDRYROQia1C8ipcq2bdt44IEH6NKlC927dyclJYXk5GS2b98NQIsWrejUqRU//wz/+he0aAFTpuydmF+pUvDKUb8+rFmz/+coe76IlCbqIROREpc/c/4DDzzA559/DkDVqlV56aWXmDZtGgBJSUk0bvwx9957CgAJCTBiBFx77d7z/eY3+wZheSl7voiUBeohE5ESVbv2DjZtSgVSAUhPh6FDIS4ug6wsiI+P55FHfmHs2Mq4B6koOnaEjRv3nuOqq2LSdBGRYqOATERKRHZ2dmi9yGoRjtdl8+YgD9iePZVZtw7Wrw+WLPr970u4sSIiJUxDliJS7N5//33q16/PihUrCiyXs2La1VcH88KSkkqgcSIipYACMhEpckuXLuXiiy9m8uTJABx99NGcdVZflizZU2C9s84KfpoVdwtFREoXDVmKyCHLzMxk5MiRHHnkkfTs2ZMjjjiC2bNns2TJajp1gmOPbclXXz1P5cqxbqmISOmkHjIROSg//vgjn332GRBMxH/ssccYP348ADVq1KBz58X8858XA0GP1+OPww03xKy5IiKlWqEBmZm9aGZrzez7PPvuNrMVZjY79OoVoW4PM1toZovN7M6ibLiIlCx356effsrdvummmxg8eDAAZsYf/ziHGTNGkpkZHD/7bOPii4MUEwBXXAGnnho5/5fygolIRRZND9lLQI8w+59093ah14T8B80sHvgX0BNoBVxhZq0OpbEiUjzy5wUbPXo0EAxF5hg6dCitW7dm27ZtAAwc+BRHHz07N+lqcnJNmjc3fv012O7XD26/ff/5YMoLJiKyv0IDMnf/EthwEOfuCCx295/dfTcwBuh7EOcRkWI0evRoBg0aRHp6eu7C3YMGDeLOO++kXr16LFy4EIBeva6gb9+v+P77eCCYqD9nTnUWLw7O06cPvPkm1K0bqysRESm7DmVS/41m1h9IA25z91/zHW8MLMuzvRw4JdLJzGwQMAggOTn5EJolIgeif//uZGdv22ff9u3w6KNrOfvsGsydW5Vjj4UTTjiB8eODJYpOOQXatIFlyyBOM1FFRA7ZwX6VPg00B9oBq4DHw5QJ9+C6Rzqhu4909/bu3r6u/ostUuyys7N5+OGHyc4O//ctO7seCxb8lddeawZArVqwYgXcdltw3EzBmIhIUTmor1N3X+PuWe6eDTxHMDyZ33KgaZ7tJsDKg/k8ESkaX375JWPHjgUgLi6O1157rcDy77wDL720d1v/VxIRKR4HFZCZWcM8mxcC34cpNgNoYWZHmlll4HLg3YP5PBE5OBkZGXz44Ye52//85z8ZMuRuPPTo43nnzSiw/oknBksZiYhI8Yom7cVrwFTgWDNbbmbXAo+Y2XdmNhc4E7g1VLaRmU0AcPdM4EZgIrAAGOfu84rpOkSEIDXF/Pnzyc7OBmD48OH07t2bDRuC53LOP/8Z1q6dz88/BzMK+vZNiFlbRURkr2iesrzC3Ru6e4K7N3H3F9z9Knc/wd3buHsfd18VKrvS3XvlqTvB3Y9x9+buPqw4L0Skotq9eze7du0C4PXXX+f4449n1qxZAHTvfj1HHbWZqVNrA9C5cx369bPcVBQdw002EBGREqcpuSJlUM6Q4+LFi0lKSuLNN98E4PTTu9G+/SK+/rolAB07NubII6tTpUrwV/2oo+Dpp4OfOZSoVUQk9hSQiZRCBSVq7dKlC/fddx8ARx11FO3avcL06Z0BaNSoDjVrHk12dg0AqlaFiRPh7LMjf5YStYqIxJ4WFxcpZWrX3sGmTalAKgDp6UHW+xtu2MHGjdVITLyAOXM6AcGTknXrXsCKFXvrT5oUg0aLiMghUUAmUsps2lStwP1t2tzKf/4Du3dD5cowbhzEx5dkC0VEpKhpyFIkxubPn8+dd97Jnj17oio/dGiQoLVy5WBbwZiISNmngEykhG3YsIFnn32WVatWATB//kIee+xLJk1aFFX9mjWhkvq2RUTKFQVkIsUsMzOTTz/9NHeR7tWrV3PddfcxatRUAE45pRdZWVNIS2sVy2aKiEgMKSATKQbp6enMmxfkQd61axc9e17EI48EqSmOPfY4jjhiCXPnXghA06ZV+OADGDw4Zs0VEZEY08CHSBHYtWsXS5cupUWLFgCcdVY3UlI68emnL5OYmEjr1kuZOzdIRREfb7z8cqV9coH16rX3ff36sGbN/p+hvGAiIuWXeshEohAuL1hGRkbu8csvv5xzz70sd7tt28+YOfNFsrKC7QcfrMWwYXtn359/PrSKMEKpvGAiIhWPeshEChEpLxisZvPm7dSsWZ1jjnmQd989lpUrnUaNjNtua8p550FmZvAU5LnnxvIKRESktFNAJhKBu5OdnR0xLxg0YPLk7fToAddc05LExL1PP3bqFLxERESioSFLkTxy1oj88ccfady4Me+8816B5Zs0qQ5Ay5bwt79BvXrF3kQRESmHFJCJADt27ODEE0/kkUceBaBZsxT27PmC11/vUGC91q1LonUiIlLeKSCTCuvyyy/n97+/AYBq1aqxdetTvPnmFQBUqVKZq69uQffujWPZRBERqSAUkEmFce+993LBBRfmbi9ffg1vv31X7vbgwZ3o3btp7vZjj8E115RoE0VEpIJSQCZlUrg0FPm9+uqrdOnShezsbAAWLjyZjz9+nm3bgnli119/Lhdc0IDdu4Pyf/oT3HXXfqeJmP9LecFERKSoKCCTMqd27R3065dKevoS3LNJT19Cv36p1KixlW7duuXmB1u0qD4zZrzG1KmbABg8+DwuvLAOmzcbAKmp8O9/712kOxLlBRMRkeKmgEzKnEhpKLZtq8GUKf9i1KgtAFx9dTfOOacRNWocDsAZZ8CoUdCwYYk1VUREJCoKyKTM2Lp1KwMGDCiwTNeuLWnVKliTKCUF3nkH2rYtgcaJiIgcgkITw5rZi8D5wFp3bx3a9yjQG9gN/ARc4+4bw9RdAmwBsoBMd29fZC2XCuG2226jSZOm3HrrLSQmJjJu3CUFlv/wwxJqmIiISBGKpofsJaBHvn0fA63dvQ3wI/CXAuqf6e7tFIxJNB577DFuu+3Pudvjx5/BE08EK2+bGddf3z1WTRMRESk2hQZk7v4lsCHfvo/cPTO0+Q3QpBjaJhXAqFGjuPTSfrnbb73Vgn//+8+EHozkz3/uQ2rqMYQS6PPwwxaDVoqIiBSvophD9n9ApIEiBz4ys5lmNqigk5jZIDNLM7O0nKfkpOyIJg0FwCeffMI555zPtm07AfjooyTefPN5lizZDsDQoX25/voktgebXH+98dBDYHniMKWhEBGR8uaQAjIzGwpkAuH/9YVO7n4S0BO4wczOiHQudx/p7u3dvX3dunUPpVlSwiKloahdewdz586lR4++fPfdYgBmzUrk00/f4P331wPwpz/14KabqlK5crAmZK9e8MQTUKNG5M9TGgoRESlvCp3UH4mZXU0w2b+b56zInI+7rwz9XGtmbwEdgS8P9jOldIqUhmLTpmps3HgYH300hrZtl/HwwzBgwG9YtQratg2WJGrTBp58siRbKyIiUvocVEBmZj2AO4Au7r49QplEIM7dt4TedwfuPeiWSqm0Z88eICHi8c6dU7jjDrj44mMAOOIIBWAiIiL5FTpkaWavAVOBY81suZldCzwF1AQ+NrPZZvZMqGwjM5sQqlof+NrM5gDTgQ/c/X/FchVSolJTb6R//0cBSEiIHIxBMPfrwQehvZ6xFRERiajQHjJ3vyLM7hcilF0J9Aq9/xlQSs4yyt2x0Ez66667h2+/3c20acMAmDJlMFu2NIhl80RERMoVZeoXIGfoMTBkyL+pV+9PZGcHUwMXLjyfmTPvZufOYHv06BN44w09eCEiIlJUFJCVU4WlodixYwdZWVkAjBjxJomJQ1i8OHjycdOm01i37nHmzt0BwHPPncw33ySQkBD0mJ12GnTtuvdcSkMhIiJyaBSQlUOR0lDUqhU8f/HWW19Ts+YDjB37HQDVq7dhz55HmT49CLjuvbcdCxZA27ZBKoqjjw7mgMXHh/88paEQERE5NAed9kJKr0hpKDZvDgKsFi1akpV1Or/8sgaA/v1bcO650LTpEQDUqRO8REREpGQoICsnlixZwo4dOzjuuOMKLdu6dRIbNsDhhwdjipUrQ9Omxd1CERERiURDlmXUd999x6RJn+Vut237BeedtzTq+ocfXhytEhERkYOhHrIyIi0tjenTF/L736cC0KfPj6xe3ZIdwbx7evToQpUqNWPYQhERETlYCshKqalTp/Of/3zDM8/8gbg448Yb1zFt2gVcc00m1apVYuDAU1i6tCbuQfLVsWNTYt1kEREROUgasiwBDRoEQVP+V4M8uVWnTJnDuec+yvLlGwEYMWIHzz13E9OnrwVgyJCO3HtvHNnZlULbTXjmmVqEcrfuQ2koREREyhYFZCVgzZrI+ydMWADAlCnZfPTR7bz9dgYAf/97R154YQ/HHRdEUX36HMFdd1UjMbHwz1MaChERkbJFQ5bFLEi+GiGBF/DBB9CrFwwe3JYTTnA6dWoBQMuW1WjZsoQaKSIiIjGlHrIitGfPHjIygh6u3bv3ULv2f+nT54MC64wYEaSpqFkzjnPPNWrUKPZmioiISCmjgOwQrF69munT5+ZuJyW9x6mnzgGgcuUEatY8jSpVjinwHJGy34uIiEjFoSHLAzB79ny+/HI5N93UHYCTTprLxo1N2R6sSMTpp7egVq29WfKXLWsOEHbivYiIiEiOCtlDFs1TjwAffjibyy8fl7vdv/9abr75N+zeHSzKfd11zRg4cG8A9sEHJ/Dqq0fv93l66lFEREQKYu4e6zbsp3379p6WllZs5y+ox6pt27FMmNCLRo1qcvHFXzB+fBfmzFlPmzZ1eO+9VaxYkcC11yaRkFBszRMREZEyxMxmunv7QzpHRQvI3J24uILHEF955Seuuqo5P/20jbVrK9GhQxUqaXBXREREwiiKgKzchxkZGRvYudNp2rQOU6ak06XLeuCkiOWDRbeDuV/NmyfSvHkJNVREREQqrHI1hyw723njjW95990g2eq6dVupVy+e3/3uOwDatWtE3bpVCzyHFt0WERGRklbmA7I77/yCO+74Cgjmhl12WUNuuWU9AElJNTj//B+5/PImAFSvnsDKla1i1lYRERGRcAqdQ2ZmLwLnA2vdvXVo3xHAWCAFWAJc6u6/hqnbAxhOkKr+eXd/KKpGWXuHYA5Z/fr7LvnTr98klizJ5uuvzwagdu3ZuCewadPxADz55AJOPLEOXbvWi3j+Bg3CL2eU/7NEREREClMik/rN7AxgK/BKnoDsEWCDuz9kZncCh7v7HfnqxQM/AucAy4EZwBXuPr/QRuUJyAAOO2wWmzYF876OP/5rVqw4nI0bgwBszpwNHH10bRITy3xnn4iIiJRBRRGQFRrFuPuXwIZ8u/sCL4fevwxcEKZqR2Cxu//s7ruBMaF6B6x27T1s27YHgLlzO+UGYwBt2x6hYExERETKtIONZOq7+yqA0M9w44ONgWV5tpeH9oVlZoPMLM3M9st3kZ5+ComJQeKv+HilvRcREZHypTi7lsJFThHHR919pLu3P9QuPxEREZGy5mADsjVm1hAg9HNtmDLLgaZ5tpsAKw/y80RERETKrYMNyN4Frg69vxp4J0yZGUALMzvSzCoDl4fqHRCt9ygiIiLlXaEBmZm9BkwFjjWz5WZ2LfAQcI6ZLSJ4ivKhUNlGZjYBwN0zgRuBicACYJy7z4umUSefDO7BS2koREREpLwrdOkkd78iwqFuYcquBHrl2Z4ATDjo1omIiIhUAMoXISIiIhJjCshEREREYkwBmYiIiEiMKSATERERibFC17KMBTPbAiyMdTtKmSRgXawbUQrpvoSn+xKe7sv+dE/C030JT/clvGPdveahnKDQpyxjZKEy9u/LzNJ0T/an+xKe7kt4ui/70z0JT/clPN2X8MIt+3igNGQpIiIiEmMKyERERERirLQGZCNj3YBSSPckPN2X8HRfwtN92Z/uSXi6L+HpvoR3yPelVE7qFxEREalISmsPmYiIiEiFoYBMREREJMZKNCAzsx5mttDMFpvZnWGOm5mNCB2fa2YnRVu3LIvivqSG7sdcM5tiZm3zHFtiZt+Z2eyieOy2NInivnQ1s02ha59tZn+Ltm5ZFcU9uT3P/fjezLLM7IjQsfL8u/Kima01s+8jHK9w3y1R3JOK+r1S2H2pcN8rENV9qXDfLWbW1Mw+M7MFZjbPzG4OU6bovlvcvUReQDzwE3AUUBmYA7TKV6YX8CFgwKnAtGjrltVXlPflNODw0PueOfcltL0ESIr1dcTovnQF3j+YumXxdaDXBfQGJpX335XQtZ0BnAR8H+F4RfxuKeyeVLjvlSjvS4X6Xon2vuQrWyG+W4CGwEmh9zWBH4szbinJHrKOwGJ3/9nddwNjgL75yvQFXvHAN0BtM2sYZd2yqtBrc/cp7v5raPMboEkJtzEWDuXPvLz+vhzodV0BvFYiLYsxd/8S2FBAkQr33VLYPamg3yvR/K5EUm5/V+CA70uF+G5x91XuPiv0fguwAGicr1iRfbeUZEDWGFiWZ3s5+19YpDLR1C2rDvTariWIxnM48JGZzTSzQcXQvliJ9r78xszmmNmHZnb8AdYta6K+LjOrDvQA3syzu7z+rkSjIn63HIiK8r0SrYr0vXJAKup3i5mlACcC0/IdKrLvlpJcOsnC7MufcyNSmWjqllVRX5uZnUnwxXl6nt2d3H2lmdUDPjazH0L/0ynrorkvs4Bm7r7VzHoBbwMtoqxbFh3IdfUGJrt73v/xltfflWhUxO+WqFSw75VoVLTvlQNV4b5bzKwGQQB6i7tvzn84TJWD+m4pyR6y5UDTPNtNgJVRlommblkV1bWZWRvgeaCvu6/P2e/uK0M/1wJvEXSTlgeF3hd33+zuW0PvJwAJZpYUTd0y6kCu63LyDSmU49+VaFTE75ZCVcDvlUJVwO+VA1WhvlvMLIEgGBvt7uPDFCmy75aSDMhmAC3M7Egzq0zwh/puvjLvAv1DTy2cCmxy91VR1i2rCr02M0sGxgNXufuPefYnmlnNnPdAdyDsEzJlUDT3pYGZWeh9R4Lf5/XR1C2jorouM6sFdAHeybOvPP+uRKMifrcUqIJ+rxSqAn6vRK2ifbeEfg9eABa4+xMRihXZd0uJDVm6e6aZ3QhMJHj64EV3n2dm14WOPwNMIHhiYTGwHbimoLol1fbiFOV9+RtQB/h36Hsi093bA/WBt0L7KgGvuvv/YnAZRS7K+/Jb4HozywR2AJd78HhLufx9ifKeAFwIfOTu2/JUL7e/KwBm9hrB03FJZrYc+DuQABX3uyWKe1LhvlcgqvtSob5XckRxX6Difbd0Aq4CvjOz2aF9Q4BkKPrvFi2dJCIiIhJjytQvIiIiEmMKyERERERiTAGZiIiISIwpIBMRERGJMQVkIiIiIjGmgExEyjQzq21mvw+9b2Rmb8S6TSIiB0ppL0SkTAutMfe+u7eOdVtERA5WSa5lKSJSHB4CmocSNy4CjnP31mb2O+ACgqSMrYHHgcoEiR53Ab3cfYOZNQf+BdQlSOw40N1/KOmLEJGKTUOWIlLW3Qn85O7tgNvzHWsNXEmwtt4wYLu7nwhMBfqHyowE/uDuJwN/Av5dEo0WEclLPWQiUp595u5bgC1mtgl4L7T/O6CNmdUATgNeDy39AlCl5JspIhWdAjIRKc925XmfnWc7m+D7Lw7YGOpdExGJGQ1ZikhZtwWoeTAV3X0z8IuZXQJggbZF2TgRkWgoIBORMs3d1wOTzex74NGDOEUqcK2ZzQHmAX2Lsn0iItFQ2gsRERGRGFMPmYiIiEiMKSATERERiTEFZCIiIiIxpoBMREREJMYUkImIiIjEmAIyERERkRhTQCYiIiISY/8PKv26y9WiVREAAAAASUVORK5CYII=\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "zY0_-apQDZth"
},
"source": [
"## Numerical Error\n",
"With a numerical solution there are two types of error: \n",
"* local truncation error at one time step; \n",
"* global error which is the propagation of local error. \n",
"\n",
"### Derivation of Euler Local truncation error\n",
"The left hand side of a initial value problem $\\frac{dy}{dt}$ is approximated by __Taylors theorem__ expand about a point $t_0$ giving:\n",
"\\begin{equation}\n",
"y(t_1) = y(t_0)+(t_1-t_0)y^{'}(t_0) + \\frac{(t_1-t_0)^2}{2!}y^{''}(\\xi), \\ \\ \\ \\ \\ \\ \\xi \\in [t_0,t_1]. \n",
"\\end{equation}\n",
"Rearranging and letting $h=t_1-t_0$ the equation becomes\n",
"\\begin{equation}\n",
"y^{'}(t_0)=\\frac{y(t_1)-y(t_0)}{h}-\\frac{h}{2}y^{''}(\\xi). \n",
"\\end{equation}\n",
"From this the local truncation error is\n",
"\\begin{equation}\n",
"\\tau \\leq \\frac{h}{2}M \\sim O(h),\n",
"\\end{equation}\n",
"where $y^{''}(t) \\leq M $.\n",
"#### Derivation of Euler Local truncation error for the Population Growth\n",
"In most cases $y$ is unknown but in our example problem there is an exact solution which can be used to estimate the local truncation\n",
"\\begin{equation}\n",
"y'(t)=5e^{0.5 t},\n",
"\\end{equation}\n",
"\\begin{equation}\n",
"y''(t)=2.5e^{0.5 t}.\n",
"\\end{equation}\n",
"From this a maximum upper limit can be calculated for $y^{''} $ on the interval $[t_0,t_1]=[0,0.1]$\n",
"\\begin{equation}\n",
"y''(0.1)=2.5e^{0.1\\times 0.5}=2.63=M,\n",
"\\end{equation}\n",
"\\begin{equation}\n",
"\\tau=\\frac{h}{2}2.63=0.1315. \n",
"\\end{equation}\n",
"The plot below shows the exact local truncation error $|y-w|$ (red triangle) and the upper limit of the Truncation error (black v) for the first two time points $t_0$ and $t_1$."
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "SSrzg2xODZth",
"outputId": "b901cf51-153c-47cf-a034-5ee1d4464f7b"
},
"source": [
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(time[0:2],np.abs(w[0:2]-y[0:2]),'^:'\n",
" ,color='red',label='Error |y-w|')\n",
"plt.plot(time[0:2],0.1*2.63/2*np.ones(2),'v:'\n",
" ,color='black',label='Upper Local Truncation')\n",
"plt.xlim((0,.15))\n",
"plt.xlabel('time')\n",
"plt.legend(loc='best')\n",
"plt.title('Local Truncation Error')\n",
"plt.plot();"
],
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HleTTv83DZti"
},
"source": [
"## Global Error\n",
"The error does not stay constant accross the time this is illustrated in the figure below for the population growth equation. The actual error (red triangles) increases over time while the local truncation error (black v) remains constant."
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "pSNanPNoDZti",
"outputId": "56c35420-212d-4e3a-b2e1-e7c9564efabc"
},
"source": [
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(time,np.abs(w-y),'^:'\n",
" ,color='red',label='Error |y-w|')\n",
"plt.plot(time,0.1*2.63/2*np.ones(N+1),'v:'\n",
" ,color='black',label='Upper Local Truncation')\n",
"plt.xlim((0,2))\n",
"plt.xlabel('time')\n",
"plt.legend(loc='best')\n",
"plt.title('Why Local Truncation does not extend to global')\n",
"plt.plot();"
],
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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2kmTJrFly5ai9Iknnsj69eurtQwiIlID5OVBTg58801I3303XHghLIv0gtpzz/SVrRzJBF6rgA4x6fZAboJtXnT3ze6+BpgNHJqaIibWp08fsrOzSyzLzs6mb3SuxhrC3dkRP/VRNXv66adZsmQJ9957L/379y8aLT96Lgui82FWsfjA64UXXtATmiIisrPx42Hu3DAuF8A114SZaw46KL3lSkIygdcCoKuZdTazbGAoMCNum2eB/mZW38yaAL2BD3e1cAMHDuT+++8HYPv27QwcOJCHI1WJo0aN2ikgKCgo4PDIY6Jr1qxh4MCB/Pvf/wbgm2hUvIvlufbaa+nbty/dunVj/vz5QKgVu+CCC/jZz35G165d+cc//lH0mQkTJnDkkUfSvXt3xowZA4SatQMPPJCRI0dy+OGHs3LlyoT5xfr+++857bTT6N69O0cddRRLly4FwgCtw4cP55BDDqF79+48+eSTAFxxxRX07NmTgw8+uCjfirj//vs566yzOOWUUzj++OOZNWsWJ598ctH6K6+8sui76dSpE2PGjOHwww/nkEMO4aOPPqpw2e68805yc3M55phjOOaYY4r2u2bNGgBuv/12unXrRrdu3Zg0aVKJ83jZZZdx8MEHc/zxx7N169YKH6uIiNQgeXkwbVoYm+uRR+DrryE7G446Kt0lS0q5TzW6e4GZXQm8RBhOYqq7f2Bml0fW3+PuH5rZi8BSYAdhyIn3q7Lgbdu25Sc/+QmrV6+moKCA7OxsWrVqxZ5VXL24efNm3nrrLWbPns3FF1/M+++Hw1y6dClvv/02mzdvpkePHpx00km8//77fPLJJ8yfPx9359RTT2X27Nl07NiR5cuXM23aNO66666k8h0zZgw9evTgmWee4bXXXuPCCy9kyZIljB8/nubNm/Pee+8BsG7dOgBuueUWWrRoQWFhIcceeyxLly6le/fuFTrWefPmsXTpUlq0aMGsaCfFUrRq1Yp3332Xu+66i4kTJ3LvvfdWqGxXX301t99+O6+//jqtWrUqse9FixYxbdo03nnnHdyd3r17k5OTw5577sknn3zCo48+yj/+8Q/OPvtsnnzySc4///wKHaeIiNQQP/wA48YVD4ialQW33gqTJ6e3XBWQ1Dhe7v4C8ELcsnvi0hOACakrGiX+2Ddo0KBEukmTJixatIh9992XgoICsrKy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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "IQop9PYdDZti"
},
"source": [
"## Theorems\n",
"The theorem below proves an upper limit of the global truncation error.\n",
"### Euler Global Error\n",
"__Theorem Global Error__\n",
"\n",
"Suppose $f$ is continuous and satisfies a Lipschitz Condition with constant\n",
"L on $D=\\{(t,y)|a\\leq t \\leq b, -\\infty < y < \\infty \\}$ and that a constant M\n",
"exists with the property that \n",
"\\begin{equation}\n",
"|y^{''}(t)|\\leq M. \n",
"\\end{equation}\n",
"Let $y(t)$ denote the unique solution of the Initial Value Problem\n",
"\n",
"\\begin{equation}\n",
"y^{'}=f(t,y) \\ \\ \\ a\\leq t \\leq b, \\ \\ \\ y(a)=\\alpha, \n",
"\\end{equation}\n",
"and $w_0,w_1,...,w_N$ be the approx generated by the Euler method for some\n",
"positive integer N. Then for $i=0,1,...,N$\n",
"\\begin{equation}\n",
"|y(t_i)-w_i| \\leq \\frac{Mh}{2L}|e^{L(t_i-a)}-1|. \n",
"\\end{equation}\n",
"\n",
"### Theorems about Ordinary Differential Equations\n",
"__Definition__\n",
"\n",
"A function $f(t,y)$ is said to satisfy a __Lipschitz Condition__ in the variable $y$ on \n",
"the set $D \\subset R^2$ if a constant $L>0$ exist with the property that\n",
"\\begin{equation}\n",
"|f(t,y_1)-f(t,y_2)| < L|y_1-y_2| \n",
"\\end{equation}\n",
"whenever $(t,y_1),(t,y_2) \\in D$. The constant L is call the Lipschitz Condition\n",
"of $f$.\n",
"\n",
"__Theorem__\n",
"Suppose $f(t,y)$ is defined on a convex set $D \\subset R^2$. If a constant\n",
"$L>0$ exists with\n",
"\\begin{equation}\n",
"\\left|\\frac{\\partial f(t,y)}{\\partial y}\\right|\\leq L,\n",
"\\end{equation}\n",
"then $f$ satisfies a Lipschitz Condition an $D$ in the variable $y$ with\n",
"Lipschitz constant L.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"id": "3zrqaCFmDZtj"
},
"source": [
"### Global truncation error for the population equation\n",
"For the population equation specific values $L$ and $M$ can be calculated.\n",
"\n",
"In this case $f(t,y)=\\epsilon y$ is continuous and satisfies a Lipschitz Condition with constant\n",
"\\begin{equation} \\left|\\frac{\\partial f(t,y)}{\\partial y}\\right|\\leq L, \\end{equation}\n",
"\\begin{equation} \\left|\\frac{\\partial \\epsilon y}{\\partial y}\\right|\\leq \\epsilon=0.5=L, \\end{equation}\n",
"\n",
"on $D=\\{(t,y)|0\\leq t \\leq 2, 10 < y < 30 \\}$ and that a constant $M$\n",
"exists with the property that \n",
"\\begin{equation} |y^{''}(t)|\\leq M. \\end{equation}\n",
"\\begin{equation} |y^{''}(t)|=2.5e^{0.5\\times 2} \\leq 2.5 e=6.8. \\end{equation}\n",
"\n",
"__Specific Theorem Global Error__\n",
"\n",
"Let $y(t)$ denote the unique solution of the Initial Value Problem\n",
"\\begin{equation} y^{'}=0.5 y, \\ \\ \\ 0\\leq t \\leq 2, \\ \\ \\ y(0)=10, \\end{equation}\n",
"and $w_0,w_1,...,w_N$ be the approx generated by the Euler method for some\n",
"positive integer N. Then for $i=0,1,...,N$\n",
"\\begin{equation} |y(t_i)-w_i| \\leq \\frac{6.8 h}{2\\times 0.5}|e^{0.5(t_i-0)}-1| \\end{equation}\n",
"\n",
"The figure below shows the exact error $y-w$ in red triangles and the upper global error in black x's."
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "qqiuoTubDZtj",
"outputId": "b61db6c1-0fef-4e9f-99d7-4505a0c13fa3"
},
"source": [
"fig = plt.figure(figsize=(10,4))\n",
"plt.plot(time,np.abs(w-y),'^:'\n",
" ,color='red',label='Error |y-w|')\n",
"plt.plot(time,0.1*6.8*(np.exp(0.5*time)-1),'x:'\n",
" ,color='black',label='Upper Global Truncation')\n",
"plt.xlim((0,2))\n",
"plt.xlabel('time')\n",
"plt.legend(loc='best')\n",
"plt.title('Global Truncation Error')\n",
"plt.plot();"
],
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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Fj+px0tERKQA2L9/P6+88grx8fEAvPLKK0ycOJGgoKAAR1awKPESERHJR6Kiok4pYBobG8vzzz9PREQEP/74IwAtW7akWbNmgQixQNNQo4iISD4SGhpKeHg448eP54cffmDfvn1MnjyZmJgY+vfvT926dQMdYoGmxEtERCQfadGihW/pnooVK/LHH38wY8YMX3V5CSwNNYqIiOQTn332GdWqVaNhw4b06dOHDRs20L9/fyVduYgSLxERkTxs6dKlbN26FYDWrVvz4IMPsmDBAqKjo4mIiCA6OlqLVuciSrxERETyqAMHDtC2bVvefPNNwNXj6tatG7179yYmJobBgwf7hh2VfOUOSrxERETykOnTp/Pcc88BULZsWaZOncrrr7/u27906VJiYmJ8w4thYWHExMSwdOnSgMQraRlrbUDeuEWLFnbZsmUBeW8REZG8JDExkeDgYABefPFFxo8fz4oVKyhZsmSAIys4jDHLrbUtzvc66vESERHJxVauXEmdOnWYP38+AAMHDmT9+vVKuvIoJV4iIiK5zL59+1i/fj0AF110EaGhoRQrVgyA4sWLq9p8HqY6XiIiIrmItZawsDBKlizJokWLKFGiBJMnTw50WJJF1OMlIiISYJs2beKZZ54hKSkJYwzvvPMOn376aaDDkmygxEtERCRAvA+4rVy5kvfff581a9YAcO2119KoUaNAhibZRImXiIhINspo0eqpU6dSv359Pv74YwC6devGn3/+SdOmTQMQoeQkzfESERHJRt5Fq7/88ktq1KjBzp07efjhh7nkkksoXrw4AEFBQVSsWDHAkUpOUOIlIiKSjbwFTDt16oQxhpIlS6YpcCoFi4YaRUREssHevXsZNGgQe/fuJSwsjHvvvZdjx47x2GOPKekqwJR4iYiIZKGkpCQA9uzZwyuvvMIPP/xAbGwsX3/9NREREXz88cdaN7EA8yvxMsZ0NMZsNMZsNsY8m8H+0saYqcaYVcaYdcaYh7I+VBERkdzLWkuXLl3417/+BUDDhg3Zvn07lStXJjw8XItWC+BH4mWMCQI+BG4CGgF3G2PSP+P6OLDeWns50B54yxhTJItjFRERyVUSEhKYNWsWAMYYGjZsSN26dX37q1atqkWrJY2zLpJtjLkKeMlae6OnPRDAWvtaqmMGAjVwCVht4AfgImtt8umuq0WyRUQkrxs8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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MfU9ysZqDZtj"
},
"source": [
"### Table\n",
"The table below shows the iteration $i$, the discrete time point t[i], the Euler approximation w[i] of the solution $y$, the exact error $|y-w|$ and the upper limit of the global error for the linear population equation."
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
},
"id": "5Bfy2oKdDZtk",
"outputId": "90902e25-b8bc-4a7c-8a10-951fc6a9c0ae"
},
"source": [
"\n",
"d = {'time t_i': time[0:10], 'Euler (w_i) ':w[0:10],'Exact (y)':y[0:10],'Exact Error (|y_i-w_i|)':np.round(np.abs(w[0:10]-y[0:10]),10),r'Global Error ':np.round(0.1*6.8*(np.exp(0.5*time[0:10])-1),20)}\n",
"df = pd.DataFrame(data=d)\n",
"df"
],
"execution_count": null,
"outputs": [
{
"data": {
"text/html": [
"